package com.cw.jeeyt.service.intf.git;

import java.util.List;

import com.cw.jeeyt.service.bo.git.GitProjectBo;
import com.cw.jeeyt.service.bo.git.NewGitBranchBo;
import com.cw.lang.mybatis.dto.PageInfo;
import com.cw.lang.mybatis.dto.PageParam;

/**
 * git项目信息业务接口
 *
 * @author chenw
 * @date 2019-11-24 16:15:01
 */
public interface GitProjectService {
    /**
     * 新增git项目信息
     *
     * @param request 条件
     * @return String
     */
    boolean addGitProject(GitProjectBo request);

    /**
     * 更新git项目信息
     *
     * @param request 条件
     * @return boolean
     */
    boolean modifyGitProject(GitProjectBo request);

    /**
     * 删除git项目信息
     *
     * @param request 条件
     * @return boolean
     */
    boolean deleteGitProject(GitProjectBo request);

    /**
     * 分页查询git项目信息
     *
     * @param request 条件
     * @return PageInfo<GitProjectBo>
     */
    PageInfo<GitProjectBo> selectPage(GitProjectBo request, PageParam pageParam) throws Exception;

    /**
     * 查询git项目信息详情信息
     *
     * @param request 条件
     * @return GitProjectBo
     */
    GitProjectBo queryGitProjectDetail(GitProjectBo request);

    /**
     * 根据条件查询git项目信息
     *
     * @param request 条件
     * @return List<GitProjectBo>
     */
    List<GitProjectBo> queryGitProjectList(GitProjectBo request);

    /**
     * 根据key查询git项目信息
     *
     * @param id
     * @return
     */
    GitProjectBo selectByKey(Long id);

    /**
     * 根据项目id集合查询git项目信息
     *
     * @param projectIds
     * @return
     */
    List<GitProjectBo> selectListByProjectIds(String projectIds);

    /**
     * 拉取新的git分支
     *
     * @param newGitBranchBo
     * @return
     */
    boolean newBranch(NewGitBranchBo newGitBranchBo);
}
